home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1986-07-08 | 10.3 KB | [TEXT/□□□□] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Jul 7 20:56:58 1986, modified Mon Jul 7 20:56:58 1986, type ASCII, 9739 bytes "xlisp.h" , at 0x268b 444 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [□□□□] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 78 6c 69 73 70 2e | 68 00 00 00 00 00 00 00 |..xlisp.|h.......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 00 00 00 | 00 01 00 00 00 00 00 00 |.TEXT...|........|
|00000050| 00 00 00 00 00 26 0b 00 | 00 01 bc 9b 36 15 da 9b |.....&..|....6...|
|00000060| 36 15 da 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |6.......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 65 5e 00 00 |........|....e^..|
|00000080| 2f 2a 20 78 6c 69 73 70 | 20 2d 20 61 20 73 6d 61 |/* xlisp| - a sma|
|00000090| 6c 6c 20 73 75 62 73 65 | 74 20 6f 66 20 6c 69 73 |ll subse|t of lis|
|000000a0| 70 20 2a 2f 0d 2f 2a 09 | 43 6f 70 79 72 69 67 68 |p */./*.|Copyrigh|
|000000b0| 74 20 28 63 29 20 31 39 | 38 35 2c 20 62 79 20 44 |t (c) 19|85, by D|
|000000c0| 61 76 69 64 20 4d 69 63 | 68 61 65 6c 20 42 65 74 |avid Mic|hael Bet|
|000000d0| 7a 0d 09 41 6c 6c 20 52 | 69 67 68 74 73 20 52 65 |z..All R|ights Re|
|000000e0| 73 65 72 76 65 64 0d 09 | 50 65 72 6d 69 73 73 69 |served..|Permissi|
|000000f0| 6f 6e 20 69 73 20 67 72 | 61 6e 74 65 64 20 66 6f |on is gr|anted fo|
|00000100| 72 20 75 6e 72 65 73 74 | 72 69 63 74 65 64 20 6e |r unrest|ricted n|
|00000110| 6f 6e 2d 63 6f 6d 6d 65 | 72 63 69 61 6c 20 75 73 |on-comme|rcial us|
|00000120| 65 09 2a 2f 0d 0d 2f 2a | 20 73 79 73 74 65 6d 20 |e.*/../*| system |
|00000130| 73 70 65 63 69 66 69 63 | 20 64 65 66 69 6e 69 74 |specific| definit|
|00000140| 69 6f 6e 73 20 2a 2f 0d | 23 64 65 66 69 6e 65 20 |ions */.|#define |
|00000150| 4d 45 47 41 4d 41 58 0d | 0d 23 69 6e 63 6c 75 64 |MEGAMAX.|.#includ|
|00000160| 65 20 3c 73 74 64 69 6f | 2e 68 3e 0d 23 69 6e 63 |e <stdio|.h>.#inc|
|00000170| 6c 75 64 65 20 3c 63 74 | 79 70 65 2e 68 3e 0d 23 |lude <ct|ype.h>.#|
|00000180| 69 66 6e 64 65 66 20 4d | 45 47 41 4d 41 58 0d 23 |ifndef M|EGAMAX.#|
|00000190| 69 6e 63 6c 75 64 65 20 | 3c 73 65 74 6a 6d 70 2e |include |<setjmp.|
|000001a0| 68 3e 0d 23 65 6e 64 69 | 66 0d 0d 2f 2a 20 4e 4e |h>.#endi|f../* NN|
|000001b0| 4f 44 45 53 09 6e 75 6d | 62 65 72 20 6f 66 20 6e |ODES.num|ber of n|
|000001c0| 6f 64 65 73 20 74 6f 20 | 61 6c 6c 6f 63 61 74 65 |odes to |allocate|
|000001d0| 20 69 6e 20 65 61 63 68 | 20 72 65 71 75 65 73 74 | in each| request|
|000001e0| 20 28 31 30 30 30 29 20 | 2a 2f 0d 2f 2a 20 54 44 | (1000) |*/./* TD|
|000001f0| 45 50 54 48 09 74 72 61 | 63 65 20 73 74 61 63 6b |EPTH.tra|ce stack|
|00000200| 20 64 65 70 74 68 20 28 | 35 30 30 29 20 2a 2f 0d | depth (|500) */.|
|00000210| 2f 2a 20 45 44 45 50 54 | 48 09 65 76 61 6c 75 61 |/* EDEPT|H.evalua|
|00000220| 74 69 6f 6e 20 73 74 61 | 63 6b 20 64 65 70 74 68 |tion sta|ck depth|
|00000230| 20 28 32 30 30 30 29 20 | 2a 2f 0d 2f 2a 20 46 4f | (2000) |*/./* FO|
|00000240| 52 57 41 52 44 09 74 79 | 70 65 20 6f 66 20 61 20 |RWARD.ty|pe of a |
|00000250| 66 6f 72 77 61 72 64 20 | 64 65 63 6c 61 72 61 74 |forward |declarat|
|00000260| 69 6f 6e 20 28 29 20 2a | 2f 0d 2f 2a 20 4c 4f 43 |ion () *|/./* LOC|
|00000270| 41 4c 09 74 79 70 65 20 | 6f 66 20 61 20 6c 6f 63 |AL.type |of a loc|
|00000280| 61 6c 20 66 75 6e 63 74 | 69 6f 6e 20 28 73 74 61 |al funct|ion (sta|
|00000290| 74 69 63 29 20 2a 2f 0d | 2f 2a 20 41 46 4d 54 09 |tic) */.|/* AFMT.|
|000002a0| 09 70 72 69 6e 74 66 20 | 66 6f 72 6d 61 74 20 66 |.printf |format f|
|000002b0| 6f 72 20 61 64 64 72 65 | 73 73 65 73 20 28 22 25 |or addre|sses ("%|
|000002c0| 78 22 29 20 2a 2f 0d 2f | 2a 20 46 49 58 4e 55 4d |x") */./|* FIXNUM|
|000002d0| 09 64 61 74 61 20 74 79 | 70 65 20 66 6f 72 20 66 |.data ty|pe for f|
|000002e0| 69 78 65 64 20 70 6f 69 | 6e 74 20 6e 75 6d 62 65 |ixed poi|nt numbe|
|000002f0| 72 73 20 28 6c 6f 6e 67 | 29 20 2a 2f 0d 2f 2a 20 |rs (long|) */./* |
|00000300| 49 54 59 50 45 09 66 69 | 78 65 64 20 70 6f 69 6e |ITYPE.fi|xed poin|
|00000310| 74 20 69 6e 70 75 74 20 | 63 6f 6e 76 65 72 73 69 |t input |conversi|
|00000320| 6f 6e 20 72 6f 75 74 69 | 6e 65 20 74 79 70 65 20 |on routi|ne type |
|00000330| 28 6c 6f 6e 67 20 61 74 | 6f 6c 28 29 29 20 2a 2f |(long at|ol()) */|
|00000340| 0d 2f 2a 20 49 43 4e 56 | 09 09 66 69 78 65 64 20 |./* ICNV|..fixed |
|00000350| 70 6f 69 6e 74 20 69 6e | 70 75 74 20 63 6f 6e 76 |point in|put conv|
|00000360| 65 72 73 69 6f 6e 20 72 | 6f 75 74 69 6e 65 20 28 |ersion r|outine (|
|00000370| 61 74 6f 6c 29 20 2a 2f | 0d 2f 2a 20 49 46 4d 54 |atol) */|./* IFMT|
|00000380| 09 09 70 72 69 6e 74 66 | 20 66 6f 72 6d 61 74 20 |..printf| format |
|00000390| 66 6f 72 20 66 69 78 65 | 64 20 70 6f 69 6e 74 20 |for fixe|d point |
|000003a0| 6e 75 6d 62 65 72 73 20 | 28 22 25 6c 64 22 29 20 |numbers |("%ld") |
|000003b0| 2a 2f 0d 2f 2a 20 46 4c | 4f 4e 55 4d 09 64 61 74 |*/./* FL|ONUM.dat|
|000003c0| 61 20 74 79 70 65 20 66 | 6f 72 20 66 6c 6f 61 74 |a type f|or float|
|000003d0| 69 6e 67 20 70 6f 69 6e | 74 20 6e 75 6d 62 65 72 |ing poin|t number|
|000003e0| 73 20 28 66 6c 6f 61 74 | 29 20 2a 2f 0d 2f 2a 20 |s (float|) */./* |
|000003f0| 53 59 53 54 45 4d 09 65 | 6e 61 62 6c 65 20 74 68 |SYSTEM.e|nable th|
|00000400| 65 20 63 6f 6e 74 72 6f | 6c 2d 64 20 63 6f 6d 6d |e contro|l-d comm|
|00000410| 61 6e 64 20 2a 2f 0d 0d | 2f 2a 20 66 6f 72 20 74 |and */..|/* for t|
|00000420| 68 65 20 4d 50 57 20 63 | 6f 6d 70 69 6c 65 72 20 |he MPW c|ompiler |
|00000430| 2a 2f 0d 23 69 66 64 65 | 66 20 4d 50 57 0d 23 65 |*/.#ifde|f MPW.#e|
|00000440| 6e 64 69 66 0d 0d 2f 2a | 20 66 6f 72 20 74 68 65 |ndif../*| for the|
|00000450| 20 4d 65 67 61 4d 61 78 | 20 63 6f 6d 70 69 6c 65 | MegaMax| compile|
|00000460| 72 20 2a 2f 0d 23 69 66 | 64 65 66 20 4d 45 47 41 |r */.#if|def MEGA|
|00000470| 4d 41 58 0d 23 64 65 66 | 69 6e 65 20 4c 4f 43 41 |MAX.#def|ine LOCA|
|00000480| 4c 0d 23 64 65 66 69 6e | 65 20 41 46 4d 54 09 09 |L.#defin|e AFMT..|
|00000490| 22 25 6c 78 22 0d 23 65 | 6e 64 69 66 0d 0d 2f 2a |"%lx".#e|ndif../*|
|000004a0| 20 66 6f 72 20 74 68 65 | 20 41 5a 54 45 43 20 43 | for the| AZTEC C|
|000004b0| 20 63 6f 6d 70 69 6c 65 | 72 20 2d 20 73 6d 61 6c | compile|r - smal|
|000004c0| 6c 20 6d 6f 64 65 6c 20 | 2a 2f 0d 23 69 66 64 65 |l model |*/.#ifde|
|000004d0| 66 20 41 5a 54 45 43 5f | 53 4d 0d 23 64 65 66 69 |f AZTEC_|SM.#defi|
|000004e0| 6e 65 20 53 59 53 54 45 | 4d 0d 23 64 65 66 69 6e |ne SYSTE|M.#defin|
|000004f0| 65 20 4e 49 4c 09 09 28 | 76 6f 69 64 20 2a 29 30 |e NIL..(|void *)0|
|00000500| 0d 23 65 6e 64 69 66 0d | 0d 2f 2a 20 66 6f 72 20 |.#endif.|./* for |
|00000510| 74 68 65 20 41 5a 54 45 | 43 20 43 20 63 6f 6d 70 |the AZTE|C C comp|
|00000520| 69 6c 65 72 20 2d 20 6c | 61 72 67 65 20 6d 6f 64 |iler - l|arge mod|
|00000530| 65 6c 20 2a 2f 0d 23 69 | 66 64 65 66 20 41 5a 54 |el */.#i|fdef AZT|
|00000540| 45 43 5f 4c 4d 0d 23 64 | 65 66 69 6e 65 20 53 59 |EC_LM.#d|efine SY|
|00000550| 53 54 45 4d 0d 23 64 65 | 66 69 6e 65 20 4e 4e 4f |STEM.#de|fine NNO|
|00000560| 44 45 53 09 09 32 30 30 | 30 0d 23 64 65 66 69 6e |DES..200|0.#defin|
|00000570| 65 20 41 46 4d 54 09 09 | 22 25 6c 78 22 0d 23 64 |e AFMT..|"%lx".#d|
|00000580| 65 66 69 6e 65 20 46 4c | 4f 4e 55 4d 09 09 64 6f |efine FL|ONUM..do|
|00000590| 75 62 6c 65 0d 23 64 65 | 66 69 6e 65 20 4e 49 4c |uble.#de|fine NIL|
|000005a0| 09 09 28 76 6f 69 64 20 | 2a 29 30 0d 23 65 6e 64 |..(void |*)0.#end|
|000005b0| 69 66 0d 0d 2f 2a 20 66 | 6f 72 20 74 68 65 20 44 |if../* f|or the D|
|000005c0| 69 67 69 74 61 6c 20 52 | 65 73 65 61 72 63 68 20 |igital R|esearch |
|000005d0| 43 20 63 6f 6d 70 69 6c | 65 72 20 28 41 74 61 72 |C compil|er (Atar|
|000005e0| 69 20 53 54 29 20 2a 2f | 0d 23 69 66 64 65 66 20 |i ST) */|.#ifdef |
|000005f0| 44 52 0d 23 64 65 66 69 | 6e 65 20 4c 4f 43 41 4c |DR.#defi|ne LOCAL|
|00000600| 0d 23 64 65 66 69 6e 65 | 20 41 46 4d 54 09 09 22 |.#define| AFMT.."|
|00000610| 25 6c 78 22 0d 23 64 65 | 66 69 6e 65 20 46 4c 4f |%lx".#de|fine FLO|
|00000620| 4e 55 4d 09 09 64 6f 75 | 62 6c 65 0d 23 75 6e 64 |NUM..dou|ble.#und|
|00000630| 65 66 20 4e 55 4c 4c 0d | 23 64 65 66 69 6e 65 20 |ef NULL.|#define |
|00000640| 4e 55 4c 4c 09 09 30 4c | 0d 23 65 6e 64 69 66 0d |NULL..0L|.#endif.|
|00000650| 0d 2f 2a 20 64 65 66 61 | 75 6c 74 20 69 6d 70 6f |./* defa|ult impo|
|00000660| 72 74 61 6e 74 20 64 65 | 66 69 6e 69 74 69 6f 6e |rtant de|finition|
|00000670| 73 20 2a 2f 0d 23 69 66 | 6e 64 65 66 20 4e 4e 4f |s */.#if|ndef NNO|
|00000680| 44 45 53 0d 23 64 65 66 | 69 6e 65 20 4e 4e 4f 44 |DES.#def|ine NNOD|
|00000690| 45 53 09 09 31 30 30 30 | 0d 23 65 6e 64 69 66 0d |ES..1000|.#endif.|
|000006a0| 23 69 66 6e 64 65 66 20 | 54 44 45 50 54 48 0d 23 |#ifndef |TDEPTH.#|
|000006b0| 64 65 66 69 6e 65 20 54 | 44 45 50 54 48 09 09 35 |define T|DEPTH..5|
|000006c0| 30 30 0d 23 65 6e 64 69 | 66 0d 23 69 66 6e 64 65 |00.#endi|f.#ifnde|
|000006d0| 66 20 45 44 45 50 54 48 | 0d 23 64 65 66 69 6e 65 |f EDEPTH|.#define|
|000006e0| 20 45 44 45 50 54 48 09 | 09 32 30 30 30 0d 23 65 | EDEPTH.|.2000.#e|
|000006f0| 6e 64 69 66 0d 23 69 66 | 6e 64 65 66 20 46 4f 52 |ndif.#if|ndef FOR|
|00000700| 57 41 52 44 0d 23 64 65 | 66 69 6e 65 20 46 4f 52 |WARD.#de|fine FOR|
|00000710| 57 41 52 44 0d 23 65 6e | 64 69 66 0d 23 69 66 6e |WARD.#en|dif.#ifn|
|00000720| 64 65 66 20 4c 4f 43 41 | 4c 0d 23 64 65 66 69 6e |def LOCA|L.#defin|
|00000730| 65 20 4c 4f 43 41 4c 09 | 09 73 74 61 74 69 63 0d |e LOCAL.|.static.|
|00000740| 23 65 6e 64 69 66 0d 23 | 69 66 6e 64 65 66 20 41 |#endif.#|ifndef A|
|00000750| 46 4d 54 0d 23 64 65 66 | 69 6e 65 20 41 46 4d 54 |FMT.#def|ine AFMT|
|00000760| 09 09 22 25 78 22 0d 23 | 65 6e 64 69 66 0d 23 69 |.."%x".#|endif.#i|
|00000770| 66 6e 64 65 66 20 46 49 | 58 4e 55 4d 0d 23 64 65 |fndef FI|XNUM.#de|
|00000780| 66 69 6e 65 20 46 49 58 | 4e 55 4d 09 09 6c 6f 6e |fine FIX|NUM..lon|
|00000790| 67 0d 23 65 6e 64 69 66 | 0d 23 69 66 6e 64 65 66 |g.#endif|.#ifndef|
|000007a0| 20 49 54 59 50 45 0d 23 | 64 65 66 69 6e 65 20 49 | ITYPE.#|define I|
|000007b0| 54 59 50 45 09 09 6c 6f | 6e 67 20 61 74 6f 6c 28 |TYPE..lo|ng atol(|
|000007c0| 29 0d 23 65 6e 64 69 66 | 0d 23 69 66 6e 64 65 66 |).#endif|.#ifndef|
|000007d0| 20 49 43 4e 56 0d 23 64 | 65 66 69 6e 65 20 49 43 | ICNV.#d|efine IC|
|000007e0| 4e 56 28 6e 29 09 09 61 | 74 6f 6c 28 6e 29 0d 23 |NV(n)..a|tol(n).#|
|000007f0| 65 6e 64 69 66 0d 23 69 | 66 6e 64 65 66 20 49 46 |endif.#i|fndef IF|
|00000800| 4d 54 0d 23 64 65 66 69 | 6e 65 20 49 46 4d 54 09 |MT.#defi|ne IFMT.|
|00000810| 09 22 25 6c 64 22 0d 23 | 65 6e 64 69 66 0d 23 69 |."%ld".#|endif.#i|
|00000820| 66 6e 64 65 66 20 46 4c | 4f 4e 55 4d 0d 23 64 65 |fndef FL|ONUM.#de|
|00000830| 66 69 6e 65 20 46 4c 4f | 4e 55 4d 09 09 66 6c 6f |fine FLO|NUM..flo|
|00000840| 61 74 0d 23 65 6e 64 69 | 66 0d 0d 2f 2a 20 75 73 |at.#endi|f../* us|
|00000850| 65 66 75 6c 20 64 65 66 | 69 6e 69 74 69 6f 6e 73 |eful def|initions|
|00000860| 20 2a 2f 0d 23 64 65 66 | 69 6e 65 20 54 52 55 45 | */.#def|ine TRUE|
|00000870| 09 31 0d 23 64 65 66 69 | 6e 65 20 46 41 4c 53 45 |.1.#defi|ne FALSE|
|00000880| 09 30 0d 23 69 66 6e 64 | 65 66 20 4e 49 4c 0d 23 |.0.#ifnd|ef NIL.#|
|00000890| 64 65 66 69 6e 65 20 4e | 49 4c 09 28 4e 4f 44 45 |define N|IL.(NODE|
|000008a0| 20 2a 29 30 0d 23 65 6e | 64 69 66 0d 0d 2f 2a 20 | *)0.#en|dif../* |
|000008b0| 70 72 6f 67 72 61 6d 20 | 6c 69 6d 69 74 73 20 2a |program |limits *|
|000008c0| 2f 0d 23 64 65 66 69 6e | 65 20 53 54 52 4d 41 58 |/.#defin|e STRMAX|
|000008d0| 09 09 31 30 30 09 09 2f | 2a 20 6d 61 78 69 6d 75 |..100../|* maximu|
|000008e0| 6d 20 6c 65 6e 67 74 68 | 20 6f 66 20 61 20 73 74 |m length| of a st|
|000008f0| 72 69 6e 67 20 63 6f 6e | 73 74 61 6e 74 20 2a 2f |ring con|stant */|
|00000900| 0d 23 64 65 66 69 6e 65 | 20 48 53 49 5a 45 09 09 |.#define| HSIZE..|
|00000910| 31 39 39 09 09 2f 2a 20 | 73 79 6d 62 6f 6c 20 68 |199../* |symbol h|
|00000920| 61 73 68 20 74 61 62 6c | 65 20 73 69 7a 65 20 2a |ash tabl|e size *|
|00000930| 2f 0d 23 64 65 66 69 6e | 65 20 53 41 4d 50 4c 45 |/.#defin|e SAMPLE|
|00000940| 09 09 31 30 30 09 09 2f | 2a 20 63 6f 6e 74 72 6f |..100../|* contro|
|00000950| 6c 20 63 68 61 72 61 63 | 74 65 72 20 73 61 6d 70 |l charac|ter samp|
|00000960| 6c 65 20 72 61 74 65 20 | 2a 2f 0d 09 0d 2f 2a 20 |le rate |*/.../* |
|00000970| 6e 6f 64 65 20 74 79 70 | 65 73 20 2a 2f 0d 23 64 |node typ|es */.#d|
|00000980| 65 66 69 6e 65 20 46 52 | 45 45 09 30 0d 23 64 65 |efine FR|EE.0.#de|
|00000990| 66 69 6e 65 20 53 55 42 | 52 09 31 0d 23 64 65 66 |fine SUB|R.1.#def|
|000009a0| 69 6e 65 20 46 53 55 42 | 52 09 32 0d 23 64 65 66 |ine FSUB|R.2.#def|
|000009b0| 69 6e 65 20 4c 49 53 54 | 09 33 0d 23 64 65 66 69 |ine LIST|.3.#defi|
|000009c0| 6e 65 20 53 59 4d 09 34 | 0d 23 64 65 66 69 6e 65 |ne SYM.4|.#define|
|000009d0| 20 49 4e 54 09 35 0d 23 | 64 65 66 69 6e 65 20 53 | INT.5.#|define S|
|000009e0| 54 52 09 36 0d 23 64 65 | 66 69 6e 65 20 4f 42 4a |TR.6.#de|fine OBJ|
|000009f0| 09 37 0d 23 64 65 66 69 | 6e 65 20 46 50 54 52 09 |.7.#defi|ne FPTR.|
|00000a00| 38 0d 23 64 65 66 69 6e | 65 20 46 4c 4f 41 54 09 |8.#defin|e FLOAT.|
|00000a10| 39 0d 23 64 65 66 69 6e | 65 20 56 45 43 54 09 31 |9.#defin|e VECT.1|
|00000a20| 30 0d 0d 2f 2a 20 6e 6f | 64 65 20 66 6c 61 67 73 |0../* no|de flags|
|00000a30| 20 2a 2f 0d 23 64 65 66 | 69 6e 65 20 4d 41 52 4b | */.#def|ine MARK|
|00000a40| 09 31 0d 23 64 65 66 69 | 6e 65 20 4c 45 46 54 09 |.1.#defi|ne LEFT.|
|00000a50| 32 0d 0d 2f 2a 20 73 74 | 72 69 6e 67 20 74 79 70 |2../* st|ring typ|
|00000a60| 65 73 20 2a 2f 0d 23 64 | 65 66 69 6e 65 20 44 59 |es */.#d|efine DY|
|00000a70| 4e 41 4d 49 43 09 30 0d | 23 64 65 66 69 6e 65 20 |NAMIC.0.|#define |
|00000a80| 53 54 41 54 49 43 09 31 | 0d 0d 2f 2a 20 6e 65 77 |STATIC.1|../* new|
|00000a90| 20 6e 6f 64 65 20 61 63 | 63 65 73 73 20 6d 61 63 | node ac|cess mac|
|00000aa0| 72 6f 73 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 6e |ros */.#|define n|
|00000ab0| 74 79 70 65 28 78 29 09 | 28 28 78 29 2d 3e 6e 5f |type(x).|((x)->n_|
|00000ac0| 74 79 70 65 29 0d 0d 2f | 2a 20 6d 61 63 72 6f 73 |type)../|* macros|
|00000ad0| 20 74 6f 20 70 72 6f 74 | 65 63 74 20 6e 6f 64 65 | to prot|ect node|
|00000ae0| 20 70 6f 69 6e 74 65 72 | 73 20 2a 2f 0d 23 64 65 | pointer|s */.#de|
|00000af0| 66 69 6e 65 20 78 6c 73 | 74 6b 63 68 65 63 6b 28 |fine xls|tkcheck(|
|00000b00| 6e 29 09 7b 69 66 20 28 | 78 6c 73 74 61 63 6b 20 |n).{if (|xlstack |
|00000b10| 2d 20 28 6e 29 20 3c 20 | 78 6c 73 74 6b 62 61 73 |- (n) < |xlstkbas|
|00000b20| 65 29 20 78 6c 73 74 6b | 6f 76 65 72 66 6c 6f 77 |e) xlstk|overflow|
|00000b30| 28 29 3b 7d 0d 23 64 65 | 66 69 6e 65 20 78 6c 73 |();}.#de|fine xls|
|00000b40| 61 76 65 28 6e 29 09 7b | 2a 2d 2d 78 6c 73 74 61 |ave(n).{|*--xlsta|
|00000b50| 63 6b 20 3d 20 26 6e 3b | 20 6e 20 3d 20 4e 49 4c |ck = &n;| n = NIL|
|00000b60| 3b 7d 0d 23 64 65 66 69 | 6e 65 20 78 6c 70 72 6f |;}.#defi|ne xlpro|
|00000b70| 74 65 63 74 28 6e 29 09 | 7b 2a 2d 2d 78 6c 73 74 |tect(n).|{*--xlst|
|00000b80| 61 63 6b 20 3d 20 26 6e | 3b 7d 0d 0d 2f 2a 20 63 |ack = &n|;}../* c|
|00000b90| 68 65 63 6b 20 74 68 65 | 20 73 74 61 63 6b 20 61 |heck the| stack a|
|00000ba0| 6e 64 20 70 72 6f 74 65 | 63 74 20 61 20 73 69 6e |nd prote|ct a sin|
|00000bb0| 67 6c 65 20 70 6f 69 6e | 74 65 72 20 2a 2f 0d 23 |gle poin|ter */.#|
|00000bc0| 64 65 66 69 6e 65 20 78 | 6c 73 61 76 65 31 28 6e |define x|lsave1(n|
|00000bd0| 29 09 7b 69 66 20 28 78 | 6c 73 74 61 63 6b 20 3c |).{if (x|lstack <|
|00000be0| 3d 20 78 6c 73 74 6b 62 | 61 73 65 29 20 78 6c 73 |= xlstkb|ase) xls|
|00000bf0| 74 6b 6f 76 65 72 66 6c | 6f 77 28 29 3b 5c 0d 20 |tkoverfl|ow();\. |
|00000c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000c10| 20 20 20 20 20 20 20 20 | 2a 2d 2d 78 6c 73 74 61 | |*--xlsta|
|00000c20| 63 6b 20 3d 20 26 6e 3b | 20 6e 20 3d 20 4e 49 4c |ck = &n;| n = NIL|
|00000c30| 3b 7d 0d 0d 2f 2a 20 74 | 79 70 65 20 70 72 65 64 |;}../* t|ype pred|
|00000c40| 69 63 61 74 65 73 20 2a | 2f 0d 23 64 65 66 69 6e |icates *|/.#defin|
|00000c50| 65 20 61 74 6f 6d 28 78 | 29 09 09 28 28 78 29 20 |e atom(x|)..((x) |
|00000c60| 3d 3d 20 4e 49 4c 20 7c | 7c 20 28 78 29 2d 3e 6e |== NIL ||| (x)->n|
|00000c70| 5f 74 79 70 65 20 21 3d | 20 4c 49 53 54 29 0d 23 |_type !=| LIST).#|
|00000c80| 64 65 66 69 6e 65 20 6e | 75 6c 6c 28 78 29 09 09 |define n|ull(x)..|
|00000c90| 28 28 78 29 20 3d 3d 20 | 4e 49 4c 29 0d 23 64 65 |((x) == |NIL).#de|
|00000ca0| 66 69 6e 65 20 6c 69 73 | 74 70 28 78 29 09 28 28 |fine lis|tp(x).((|
|00000cb0| 78 29 20 3d 3d 20 4e 49 | 4c 20 7c 7c 20 28 78 29 |x) == NI|L || (x)|
|00000cc0| 2d 3e 6e 5f 74 79 70 65 | 20 3d 3d 20 4c 49 53 54 |->n_type| == LIST|
|00000cd0| 29 0d 23 64 65 66 69 6e | 65 20 63 6f 6e 73 70 28 |).#defin|e consp(|
|00000ce0| 78 29 09 28 28 78 29 20 | 26 26 20 28 78 29 2d 3e |x).((x) |&& (x)->|
|00000cf0| 6e 5f 74 79 70 65 20 3d | 3d 20 4c 49 53 54 29 0d |n_type =|= LIST).|
|00000d00| 23 64 65 66 69 6e 65 20 | 73 75 62 72 70 28 78 29 |#define |subrp(x)|
|00000d10| 09 28 28 78 29 20 26 26 | 20 28 78 29 2d 3e 6e 5f |.((x) &&| (x)->n_|
|00000d20| 74 79 70 65 20 3d 3d 20 | 53 55 42 52 29 0d 23 64 |type == |SUBR).#d|
|00000d30| 65 66 69 6e 65 20 66 73 | 75 62 72 70 28 78 29 09 |efine fs|ubrp(x).|
|00000d40| 28 28 78 29 20 26 26 20 | 28 78 29 2d 3e 6e 5f 74 |((x) && |(x)->n_t|
|00000d50| 79 70 65 20 3d 3d 20 46 | 53 55 42 52 29 0d 23 64 |ype == F|SUBR).#d|
|00000d60| 65 66 69 6e 65 20 73 74 | 72 69 6e 67 70 28 78 29 |efine st|ringp(x)|
|00000d70| 09 28 28 78 29 20 26 26 | 20 28 78 29 2d 3e 6e 5f |.((x) &&| (x)->n_|
|00000d80| 74 79 70 65 20 3d 3d 20 | 53 54 52 29 0d 23 64 65 |type == |STR).#de|
|00000d90| 66 69 6e 65 20 73 79 6d | 62 6f 6c 70 28 78 29 09 |fine sym|bolp(x).|
|00000da0| 28 28 78 29 20 26 26 20 | 28 78 29 2d 3e 6e 5f 74 |((x) && |(x)->n_t|
|00000db0| 79 70 65 20 3d 3d 20 53 | 59 4d 29 0d 23 64 65 66 |ype == S|YM).#def|
|00000dc0| 69 6e 65 20 66 69 6c 65 | 70 28 78 29 09 28 28 78 |ine file|p(x).((x|
|00000dd0| 29 20 26 26 20 28 78 29 | 2d 3e 6e 5f 74 79 70 65 |) && (x)|->n_type|
|00000de0| 20 3d 3d 20 46 50 54 52 | 29 0d 23 64 65 66 69 6e | == FPTR|).#defin|
|00000df0| 65 20 6f 62 6a 65 63 74 | 70 28 78 29 09 28 28 78 |e object|p(x).((x|
|00000e00| 29 20 26 26 20 28 78 29 | 2d 3e 6e 5f 74 79 70 65 |) && (x)|->n_type|
|00000e10| 20 3d 3d 20 4f 42 4a 29 | 0d 23 64 65 66 69 6e 65 | == OBJ)|.#define|
|00000e20| 20 66 69 78 70 28 78 29 | 09 09 28 28 78 29 20 26 | fixp(x)|..((x) &|
|00000e30| 26 20 28 78 29 2d 3e 6e | 5f 74 79 70 65 20 3d 3d |& (x)->n|_type ==|
|00000e40| 20 49 4e 54 29 0d 23 64 | 65 66 69 6e 65 20 66 6c | INT).#d|efine fl|
|00000e50| 6f 61 74 70 28 78 29 09 | 28 28 78 29 20 26 26 20 |oatp(x).|((x) && |
|00000e60| 28 78 29 2d 3e 6e 5f 74 | 79 70 65 20 3d 3d 20 46 |(x)->n_t|ype == F|
|00000e70| 4c 4f 41 54 29 0d 23 64 | 65 66 69 6e 65 20 76 65 |LOAT).#d|efine ve|
|00000e80| 63 74 6f 72 70 28 78 29 | 09 28 28 78 29 20 26 26 |ctorp(x)|.((x) &&|
|00000e90| 20 28 78 29 2d 3e 6e 5f | 74 79 70 65 20 3d 3d 20 | (x)->n_|type == |
|00000ea0| 56 45 43 54 29 0d 0d 2f | 2a 20 63 6f 6e 73 20 61 |VECT)../|* cons a|
|00000eb0| 63 63 65 73 73 20 6d 61 | 63 72 6f 73 20 2a 2f 0d |ccess ma|cros */.|
|00000ec0| 23 64 65 66 69 6e 65 20 | 63 61 72 28 78 29 09 09 |#define |car(x)..|
|00000ed0| 28 28 78 29 2d 3e 6e 5f | 63 61 72 29 0d 23 64 65 |((x)->n_|car).#de|
|00000ee0| 66 69 6e 65 20 63 64 72 | 28 78 29 09 09 28 28 78 |fine cdr|(x)..((x|
|00000ef0| 29 2d 3e 6e 5f 63 64 72 | 29 0d 23 64 65 66 69 6e |)->n_cdr|).#defin|
|00000f00| 65 20 63 6f 6e 73 61 28 | 78 29 09 63 6f 6e 73 28 |e consa(|x).cons(|
|00000f10| 78 2c 4e 49 4c 29 0d 23 | 64 65 66 69 6e 65 20 63 |x,NIL).#|define c|
|00000f20| 6f 6e 73 64 28 78 29 09 | 63 6f 6e 73 28 4e 49 4c |onsd(x).|cons(NIL|
|00000f30| 2c 78 29 0d 23 64 65 66 | 69 6e 65 20 72 70 6c 61 |,x).#def|ine rpla|
|00000f40| 63 61 28 78 2c 79 29 09 | 28 28 78 29 2d 3e 6e 5f |ca(x,y).|((x)->n_|
|00000f50| 63 61 72 20 3d 20 28 79 | 29 29 0d 23 64 65 66 69 |car = (y|)).#defi|
|00000f60| 6e 65 20 72 70 6c 61 63 | 64 28 78 2c 79 29 09 28 |ne rplac|d(x,y).(|
|00000f70| 28 78 29 2d 3e 6e 5f 63 | 64 72 20 3d 20 28 79 29 |(x)->n_c|dr = (y)|
|00000f80| 29 0d 0d 2f 2a 20 73 79 | 6d 62 6f 6c 20 61 63 63 |)../* sy|mbol acc|
|00000f90| 65 73 73 20 6d 61 63 72 | 6f 73 20 2a 2f 0d 23 64 |ess macr|os */.#d|
|00000fa0| 65 66 69 6e 65 20 67 65 | 74 76 61 6c 75 65 28 78 |efine ge|tvalue(x|
|00000fb0| 29 09 28 28 78 29 2d 3e | 6e 5f 73 79 6d 76 61 6c |).((x)->|n_symval|
|00000fc0| 75 65 29 0d 23 64 65 66 | 69 6e 65 20 73 65 74 76 |ue).#def|ine setv|
|00000fd0| 61 6c 75 65 28 78 2c 76 | 29 09 28 28 78 29 2d 3e |alue(x,v|).((x)->|
|00000fe0| 6e 5f 73 79 6d 76 61 6c | 75 65 20 3d 20 28 76 29 |n_symval|ue = (v)|
|00000ff0| 29 0d 23 64 65 66 69 6e | 65 20 67 65 74 70 6c 69 |).#defin|e getpli|
|00001000| 73 74 28 78 29 09 28 28 | 78 29 2d 3e 6e 5f 73 79 |st(x).((|x)->n_sy|
|00001010| 6d 70 6c 69 73 74 2d 3e | 6e 5f 63 64 72 29 0d 23 |mplist->|n_cdr).#|
|00001020| 64 65 66 69 6e 65 20 73 | 65 74 70 6c 69 73 74 28 |define s|etplist(|
|00001030| 78 2c 76 29 09 28 28 78 | 29 2d 3e 6e 5f 73 79 6d |x,v).((x|)->n_sym|
|00001040| 70 6c 69 73 74 2d 3e 6e | 5f 63 64 72 20 3d 20 28 |plist->n|_cdr = (|
|00001050| 76 29 29 0d 23 64 65 66 | 69 6e 65 20 67 65 74 70 |v)).#def|ine getp|
|00001060| 6e 61 6d 65 28 78 29 09 | 28 28 78 29 2d 3e 6e 5f |name(x).|((x)->n_|
|00001070| 73 79 6d 70 6c 69 73 74 | 2d 3e 6e 5f 63 61 72 29 |symplist|->n_car)|
|00001080| 0d 0d 2f 2a 20 76 65 63 | 74 6f 72 20 61 63 63 65 |../* vec|tor acce|
|00001090| 73 73 20 6d 61 63 72 6f | 73 20 2a 2f 0d 23 64 65 |ss macro|s */.#de|
|000010a0| 66 69 6e 65 20 67 65 74 | 73 69 7a 65 28 78 29 09 |fine get|size(x).|
|000010b0| 28 28 78 29 2d 3e 6e 5f | 76 73 69 7a 65 29 0d 23 |((x)->n_|vsize).#|
|000010c0| 64 65 66 69 6e 65 20 67 | 65 74 65 6c 65 6d 65 6e |define g|etelemen|
|000010d0| 74 28 78 2c 69 29 09 28 | 28 78 29 2d 3e 6e 5f 76 |t(x,i).(|(x)->n_v|
|000010e0| 64 61 74 61 5b 69 5d 29 | 0d 23 64 65 66 69 6e 65 |data[i])|.#define|
|000010f0| 20 73 65 74 65 6c 65 6d | 65 6e 74 28 78 2c 69 2c | setelem|ent(x,i,|
|00001100| 76 29 20 28 28 78 29 2d | 3e 6e 5f 76 64 61 74 61 |v) ((x)-|>n_vdata|
|00001110| 5b 69 5d 20 3d 20 28 76 | 29 29 0d 0d 2f 2a 20 6f |[i] = (v|))../* o|
|00001120| 62 6a 65 63 74 20 61 63 | 63 65 73 73 20 6d 61 63 |bject ac|cess mac|
|00001130| 72 6f 73 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 67 |ros */.#|define g|
|00001140| 65 74 63 6c 61 73 73 28 | 78 29 09 28 28 78 29 2d |etclass(|x).((x)-|
|00001150| 3e 6e 5f 76 64 61 74 61 | 5b 30 5d 29 0d 23 64 65 |>n_vdata|[0]).#de|
|00001160| 66 69 6e 65 20 67 65 74 | 69 76 61 72 28 78 2c 69 |fine get|ivar(x,i|
|00001170| 29 09 28 28 78 29 2d 3e | 6e 5f 76 64 61 74 61 5b |).((x)->|n_vdata[|
|00001180| 69 2b 31 5d 29 0d 23 64 | 65 66 69 6e 65 20 73 65 |i+1]).#d|efine se|
|00001190| 74 69 76 61 72 28 78 2c | 69 2c 76 29 09 28 28 78 |tivar(x,|i,v).((x|
|000011a0| 29 2d 3e 6e 5f 76 64 61 | 74 61 5b 69 2b 31 5d 20 |)->n_vda|ta[i+1] |
|000011b0| 3d 20 28 76 29 29 0d 0d | 2f 2a 20 73 75 62 72 2f |= (v))..|/* subr/|
|000011c0| 66 73 75 62 72 20 61 63 | 63 65 73 73 20 6d 61 63 |fsubr ac|cess mac|
|000011d0| 72 6f 73 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 67 |ros */.#|define g|
|000011e0| 65 74 73 75 62 72 28 78 | 29 09 28 28 78 29 2d 3e |etsubr(x|).((x)->|
|000011f0| 6e 5f 73 75 62 72 29 0d | 0d 2f 2a 20 66 69 78 6e |n_subr).|./* fixn|
|00001200| 75 6d 2f 66 6c 6f 6e 75 | 6d 20 61 63 63 65 73 73 |um/flonu|m access|
|00001210| 20 6d 61 63 72 6f 73 20 | 2a 2f 0d 23 64 65 66 69 | macros |*/.#defi|
|00001220| 6e 65 20 67 65 74 66 69 | 78 6e 75 6d 28 78 29 09 |ne getfi|xnum(x).|
|00001230| 28 28 78 29 2d 3e 6e 5f | 69 6e 74 29 0d 23 64 65 |((x)->n_|int).#de|
|00001240| 66 69 6e 65 20 67 65 74 | 66 6c 6f 6e 75 6d 28 78 |fine get|flonum(x|
|00001250| 29 09 28 28 78 29 2d 3e | 6e 5f 66 6c 6f 61 74 29 |).((x)->|n_float)|
|00001260| 0d 0d 2f 2a 20 73 74 72 | 69 6e 67 20 61 63 63 65 |../* str|ing acce|
|00001270| 73 73 20 6d 61 63 72 6f | 73 20 2a 2f 0d 23 64 65 |ss macro|s */.#de|
|00001280| 66 69 6e 65 20 67 65 74 | 73 74 72 69 6e 67 28 78 |fine get|string(x|
|00001290| 29 09 28 28 78 29 2d 3e | 6e 5f 73 74 72 29 0d 23 |).((x)->|n_str).#|
|000012a0| 64 65 66 69 6e 65 20 73 | 65 74 73 74 72 69 6e 67 |define s|etstring|
|000012b0| 28 78 2c 76 29 09 28 28 | 78 29 2d 3e 6e 5f 73 74 |(x,v).((|x)->n_st|
|000012c0| 72 20 3d 20 28 76 29 29 | 0d 0d 2f 2a 20 66 69 6c |r = (v))|../* fil|
|000012d0| 65 20 61 63 63 65 73 73 | 20 6d 61 63 72 6f 73 20 |e access| macros |
|000012e0| 2a 2f 0d 23 64 65 66 69 | 6e 65 20 67 65 74 66 69 |*/.#defi|ne getfi|
|000012f0| 6c 65 28 78 29 09 28 28 | 78 29 2d 3e 6e 5f 66 70 |le(x).((|x)->n_fp|
|00001300| 29 0d 23 64 65 66 69 6e | 65 20 73 65 74 66 69 6c |).#defin|e setfil|
|00001310| 65 28 78 2c 76 29 09 28 | 28 78 29 2d 3e 6e 5f 66 |e(x,v).(|(x)->n_f|
|00001320| 70 20 3d 20 28 76 29 29 | 0d 23 64 65 66 69 6e 65 |p = (v))|.#define|
|00001330| 20 67 65 74 73 61 76 65 | 63 68 28 78 29 09 28 28 | getsave|ch(x).((|
|00001340| 78 29 2d 3e 6e 5f 73 61 | 76 65 63 68 29 0d 23 64 |x)->n_sa|vech).#d|
|00001350| 65 66 69 6e 65 20 73 65 | 74 73 61 76 65 63 68 28 |efine se|tsavech(|
|00001360| 78 2c 76 29 09 28 28 78 | 29 2d 3e 6e 5f 73 61 76 |x,v).((x|)->n_sav|
|00001370| 65 63 68 20 3d 20 28 76 | 29 29 0d 0d 2f 2a 20 6d |ech = (v|))../* m|
|00001380| 61 63 72 6f 20 74 6f 20 | 63 68 65 63 6b 20 66 6f |acro to |check fo|
|00001390| 72 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |r the en|d of the|
|000013a0| 20 61 72 67 75 6d 65 6e | 74 20 6c 69 73 74 20 2a | argumen|t list *|
|000013b0| 2f 0d 23 64 65 66 69 6e | 65 20 78 6c 6c 61 73 74 |/.#defin|e xllast|
|000013c0| 61 72 67 28 61 72 67 73 | 29 09 69 66 20 28 61 72 |arg(args|).if (ar|
|000013d0| 67 73 29 20 78 6c 74 6f | 6f 6d 61 6e 79 28 61 72 |gs) xlto|omany(ar|
|000013e0| 67 73 29 0d 0d 2f 2a 20 | 73 79 6d 62 6f 6c 20 6e |gs)../* |symbol n|
|000013f0| 6f 64 65 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 6e |ode */.#|define n|
|00001400| 5f 73 79 6d 70 6c 69 73 | 74 09 6e 5f 69 6e 66 6f |_symplis|t.n_info|
|00001410| 2e 6e 5f 78 73 79 6d 2e | 78 73 79 5f 70 6c 69 73 |.n_xsym.|xsy_plis|
|00001420| 74 0d 23 64 65 66 69 6e | 65 20 6e 5f 73 79 6d 76 |t.#defin|e n_symv|
|00001430| 61 6c 75 65 09 6e 5f 69 | 6e 66 6f 2e 6e 5f 78 73 |alue.n_i|nfo.n_xs|
|00001440| 79 6d 2e 78 73 79 5f 76 | 61 6c 75 65 0d 0d 2f 2a |ym.xsy_v|alue../*|
|00001450| 20 73 75 62 72 2f 66 73 | 75 62 72 20 6e 6f 64 65 | subr/fs|ubr node|
|00001460| 20 2a 2f 0d 23 64 65 66 | 69 6e 65 20 6e 5f 73 75 | */.#def|ine n_su|
|00001470| 62 72 09 09 6e 5f 69 6e | 66 6f 2e 6e 5f 78 73 75 |br..n_in|fo.n_xsu|
|00001480| 62 72 2e 78 73 75 5f 73 | 75 62 72 0d 0d 2f 2a 20 |br.xsu_s|ubr../* |
|00001490| 6c 69 73 74 20 6e 6f 64 | 65 20 2a 2f 0d 23 64 65 |list nod|e */.#de|
|000014a0| 66 69 6e 65 20 6e 5f 63 | 61 72 09 09 6e 5f 69 6e |fine n_c|ar..n_in|
|000014b0| 66 6f 2e 6e 5f 78 6c 69 | 73 74 2e 78 6c 5f 63 61 |fo.n_xli|st.xl_ca|
|000014c0| 72 0d 23 64 65 66 69 6e | 65 20 6e 5f 63 64 72 09 |r.#defin|e n_cdr.|
|000014d0| 09 6e 5f 69 6e 66 6f 2e | 6e 5f 78 6c 69 73 74 2e |.n_info.|n_xlist.|
|000014e0| 78 6c 5f 63 64 72 0d 0d | 2f 2a 20 69 6e 74 65 67 |xl_cdr..|/* integ|
|000014f0| 65 72 20 6e 6f 64 65 20 | 2a 2f 0d 23 64 65 66 69 |er node |*/.#defi|
|00001500| 6e 65 20 6e 5f 69 6e 74 | 09 09 6e 5f 69 6e 66 6f |ne n_int|..n_info|
|00001510| 2e 6e 5f 78 69 6e 74 2e | 78 69 5f 69 6e 74 0d 0d |.n_xint.|xi_int..|
|00001520| 2f 2a 20 66 6c 6f 61 74 | 20 6e 6f 64 65 20 2a 2f |/* float| node */|
|00001530| 0d 23 64 65 66 69 6e 65 | 20 6e 5f 66 6c 6f 61 74 |.#define| n_float|
|00001540| 09 09 6e 5f 69 6e 66 6f | 2e 6e 5f 78 66 6c 6f 61 |..n_info|.n_xfloa|
|00001550| 74 2e 78 66 5f 66 6c 6f | 61 74 0d 0d 2f 2a 20 73 |t.xf_flo|at../* s|
|00001560| 74 72 69 6e 67 20 6e 6f | 64 65 20 2a 2f 0d 23 64 |tring no|de */.#d|
|00001570| 65 66 69 6e 65 20 6e 5f | 73 74 72 09 09 6e 5f 69 |efine n_|str..n_i|
|00001580| 6e 66 6f 2e 6e 5f 78 73 | 74 72 2e 78 73 74 5f 73 |nfo.n_xs|tr.xst_s|
|00001590| 74 72 0d 23 64 65 66 69 | 6e 65 20 6e 5f 73 74 72 |tr.#defi|ne n_str|
|000015a0| 74 79 70 65 09 6e 5f 69 | 6e 66 6f 2e 6e 5f 78 73 |type.n_i|nfo.n_xs|
|000015b0| 74 72 2e 78 73 74 5f 74 | 79 70 65 0d 0d 2f 2a 20 |tr.xst_t|ype../* |
|000015c0| 66 69 6c 65 20 70 6f 69 | 6e 74 65 72 20 6e 6f 64 |file poi|nter nod|
|000015d0| 65 20 2a 2f 0d 23 64 65 | 66 69 6e 65 20 6e 5f 66 |e */.#de|fine n_f|
|000015e0| 70 09 09 6e 5f 69 6e 66 | 6f 2e 6e 5f 78 66 70 74 |p..n_inf|o.n_xfpt|
|000015f0| 72 2e 78 66 5f 66 70 0d | 23 64 65 66 69 6e 65 20 |r.xf_fp.|#define |
|00001600| 6e 5f 73 61 76 65 63 68 | 09 6e 5f 69 6e 66 6f 2e |n_savech|.n_info.|
|00001610| 6e 5f 78 66 70 74 72 2e | 78 66 5f 73 61 76 65 63 |n_xfptr.|xf_savec|
|00001620| 68 0d 0d 2f 2a 20 76 65 | 63 74 6f 72 2f 6f 62 6a |h../* ve|ctor/obj|
|00001630| 65 63 74 20 6e 6f 64 65 | 20 2a 2f 0d 23 64 65 66 |ect node| */.#def|
|00001640| 69 6e 65 20 6e 5f 76 73 | 69 7a 65 09 09 6e 5f 69 |ine n_vs|ize..n_i|
|00001650| 6e 66 6f 2e 6e 5f 78 76 | 65 63 74 2e 78 76 5f 73 |nfo.n_xv|ect.xv_s|
|00001660| 69 7a 65 0d 23 64 65 66 | 69 6e 65 20 6e 5f 76 64 |ize.#def|ine n_vd|
|00001670| 61 74 61 09 09 6e 5f 69 | 6e 66 6f 2e 6e 5f 78 76 |ata..n_i|nfo.n_xv|
|00001680| 65 63 74 2e 78 76 5f 64 | 61 74 61 0d 0d 2f 2a 20 |ect.xv_d|ata../* |
|00001690| 6e 6f 64 65 20 73 74 72 | 75 63 74 75 72 65 20 2a |node str|ucture *|
|000016a0| 2f 0d 74 79 70 65 64 65 | 66 20 73 74 72 75 63 74 |/.typede|f struct|
|000016b0| 20 6e 6f 64 65 20 7b 0d | 20 20 20 20 63 68 61 72 | node {.| char|
|000016c0| 20 6e 5f 74 79 70 65 3b | 09 09 2f 2a 20 74 79 70 | n_type;|../* typ|
|000016d0| 65 20 6f 66 20 6e 6f 64 | 65 20 2a 2f 0d 20 20 20 |e of nod|e */. |
|000016e0| 20 63 68 61 72 20 6e 5f | 66 6c 61 67 73 3b 09 09 | char n_|flags;..|
|000016f0| 2f 2a 20 66 6c 61 67 20 | 62 69 74 73 20 2a 2f 0d |/* flag |bits */.|
|00001700| 20 20 20 20 75 6e 69 6f | 6e 20 7b 09 09 09 2f 2a | unio|n {.../*|
|00001710| 20 76 61 6c 75 65 20 2a | 2f 0d 09 73 74 72 75 63 | value *|/..struc|
|00001720| 74 20 78 73 79 6d 20 7b | 09 09 2f 2a 20 73 79 6d |t xsym {|../* sym|
|00001730| 62 6f 6c 20 6e 6f 64 65 | 20 2a 2f 0d 09 20 20 20 |bol node| */.. |
|00001740| 20 73 74 72 75 63 74 20 | 6e 6f 64 65 20 2a 78 73 | struct |node *xs|
|00001750| 79 5f 70 6c 69 73 74 3b | 09 2f 2a 20 73 79 6d 62 |y_plist;|./* symb|
|00001760| 6f 6c 20 70 6c 69 73 74 | 20 2d 20 28 6e 61 6d 65 |ol plist| - (name|
|00001770| 20 2e 20 70 6c 69 73 74 | 29 20 2a 2f 0d 09 20 20 | . plist|) */.. |
|00001780| 20 20 73 74 72 75 63 74 | 20 6e 6f 64 65 20 2a 78 | struct| node *x|
|00001790| 73 79 5f 76 61 6c 75 65 | 3b 09 2f 2a 20 74 68 65 |sy_value|;./* the|
|000017a0| 20 63 75 72 72 65 6e 74 | 20 76 61 6c 75 65 20 2a | current| value *|
|000017b0| 2f 0d 09 7d 20 6e 5f 78 | 73 79 6d 3b 0d 09 73 74 |/..} n_x|sym;..st|
|000017c0| 72 75 63 74 20 78 73 75 | 62 72 20 7b 09 09 2f 2a |ruct xsu|br {../*|
|000017d0| 20 73 75 62 72 2f 66 73 | 75 62 72 20 6e 6f 64 65 | subr/fs|ubr node|
|000017e0| 20 2a 2f 0d 09 20 20 20 | 20 73 74 72 75 63 74 20 | */.. | struct |
|000017f0| 6e 6f 64 65 20 2a 28 2a | 78 73 75 5f 73 75 62 72 |node *(*|xsu_subr|
|00001800| 29 28 29 3b 09 2f 2a 20 | 70 6f 69 6e 74 65 72 20 |)();./* |pointer |
|00001810| 74 6f 20 61 6e 20 69 6e | 74 65 72 6e 61 6c 20 72 |to an in|ternal r|
|00001820| 6f 75 74 69 6e 65 20 2a | 2f 0d 09 7d 20 6e 5f 78 |outine *|/..} n_x|
|00001830| 73 75 62 72 3b 0d 09 73 | 74 72 75 63 74 20 78 6c |subr;..s|truct xl|
|00001840| 69 73 74 20 7b 09 09 2f | 2a 20 6c 69 73 74 20 6e |ist {../|* list n|
|00001850| 6f 64 65 20 28 63 6f 6e | 73 29 20 2a 2f 0d 09 20 |ode (con|s) */.. |
|00001860| 20 20 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a | struc|t node *|
|00001870| 78 6c 5f 63 61 72 3b 09 | 2f 2a 20 74 68 65 20 63 |xl_car;.|/* the c|
|00001880| 61 72 20 70 6f 69 6e 74 | 65 72 20 2a 2f 0d 09 20 |ar point|er */.. |
|00001890| 20 20 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a | struc|t node *|
|000018a0| 78 6c 5f 63 64 72 3b 09 | 2f 2a 20 74 68 65 20 63 |xl_cdr;.|/* the c|
|000018b0| 64 72 20 70 6f 69 6e 74 | 65 72 20 2a 2f 0d 09 7d |dr point|er */..}|
|000018c0| 20 6e 5f 78 6c 69 73 74 | 3b 0d 09 73 74 72 75 63 | n_xlist|;..struc|
|000018d0| 74 20 78 69 6e 74 20 7b | 09 09 2f 2a 20 69 6e 74 |t xint {|../* int|
|000018e0| 65 67 65 72 20 6e 6f 64 | 65 20 2a 2f 0d 09 20 20 |eger nod|e */.. |
|000018f0| 20 20 46 49 58 4e 55 4d | 20 78 69 5f 69 6e 74 3b | FIXNUM| xi_int;|
|00001900| 09 09 2f 2a 20 69 6e 74 | 65 67 65 72 20 76 61 6c |../* int|eger val|
|00001910| 75 65 20 2a 2f 0d 09 7d | 20 6e 5f 78 69 6e 74 3b |ue */..}| n_xint;|
|00001920| 0d 09 73 74 72 75 63 74 | 20 78 66 6c 6f 61 74 20 |..struct| xfloat |
|00001930| 7b 09 09 2f 2a 20 66 6c | 6f 61 74 20 6e 6f 64 65 |{../* fl|oat node|
|00001940| 20 2a 2f 0d 09 20 20 20 | 20 46 4c 4f 4e 55 4d 20 | */.. | FLONUM |
|00001950| 78 66 5f 66 6c 6f 61 74 | 3b 09 09 2f 2a 20 66 6c |xf_float|;../* fl|
|00001960| 6f 61 74 20 76 61 6c 75 | 65 20 2a 2f 0d 09 7d 20 |oat valu|e */..} |
|00001970| 6e 5f 78 66 6c 6f 61 74 | 3b 0d 09 73 74 72 75 63 |n_xfloat|;..struc|
|00001980| 74 20 78 73 74 72 20 7b | 09 09 2f 2a 20 73 74 72 |t xstr {|../* str|
|00001990| 69 6e 67 20 6e 6f 64 65 | 20 2a 2f 0d 09 20 20 20 |ing node| */.. |
|000019a0| 20 69 6e 74 20 78 73 74 | 5f 74 79 70 65 3b 09 09 | int xst|_type;..|
|000019b0| 2f 2a 20 73 74 72 69 6e | 67 20 74 79 70 65 20 2a |/* strin|g type *|
|000019c0| 2f 0d 09 20 20 20 20 63 | 68 61 72 20 2a 78 73 74 |/.. c|har *xst|
|000019d0| 5f 73 74 72 3b 09 09 2f | 2a 20 73 74 72 69 6e 67 |_str;../|* string|
|000019e0| 20 70 6f 69 6e 74 65 72 | 20 2a 2f 0d 09 7d 20 6e | pointer| */..} n|
|000019f0| 5f 78 73 74 72 3b 0d 09 | 73 74 72 75 63 74 20 78 |_xstr;..|struct x|
|00001a00| 66 70 74 72 20 7b 09 09 | 2f 2a 20 66 69 6c 65 20 |fptr {..|/* file |
|00001a10| 70 6f 69 6e 74 65 72 20 | 6e 6f 64 65 20 2a 2f 0d |pointer |node */.|
|00001a20| 09 20 20 20 20 46 49 4c | 45 20 2a 78 66 5f 66 70 |. FIL|E *xf_fp|
|00001a30| 3b 09 09 2f 2a 20 74 68 | 65 20 66 69 6c 65 20 70 |;../* th|e file p|
|00001a40| 6f 69 6e 74 65 72 20 2a | 2f 0d 09 20 20 20 20 69 |ointer *|/.. i|
|00001a50| 6e 74 20 78 66 5f 73 61 | 76 65 63 68 3b 09 09 2f |nt xf_sa|vech;../|
|00001a60| 2a 20 6c 6f 6f 6b 61 68 | 65 61 64 20 63 68 61 72 |* lookah|ead char|
|00001a70| 61 63 74 65 72 20 66 6f | 72 20 69 6e 70 75 74 20 |acter fo|r input |
|00001a80| 66 69 6c 65 73 20 2a 2f | 0d 09 7d 20 6e 5f 78 66 |files */|..} n_xf|
|00001a90| 70 74 72 3b 0d 09 73 74 | 72 75 63 74 20 78 76 65 |ptr;..st|ruct xve|
|00001aa0| 63 74 20 7b 09 09 2f 2a | 20 76 65 63 74 6f 72 20 |ct {../*| vector |
|00001ab0| 6e 6f 64 65 20 2a 2f 0d | 09 20 20 20 20 69 6e 74 |node */.|. int|
|00001ac0| 20 78 76 5f 73 69 7a 65 | 3b 09 09 2f 2a 20 76 65 | xv_size|;../* ve|
|00001ad0| 63 74 6f 72 20 73 69 7a | 65 20 2a 2f 0d 09 20 20 |ctor siz|e */.. |
|00001ae0| 20 20 73 74 72 75 63 74 | 20 6e 6f 64 65 20 2a 2a | struct| node **|
|00001af0| 78 76 5f 64 61 74 61 3b | 09 2f 2a 20 76 65 63 74 |xv_data;|./* vect|
|00001b00| 6f 72 20 64 61 74 61 20 | 2a 2f 0d 09 7d 20 6e 5f |or data |*/..} n_|
|00001b10| 78 76 65 63 74 3b 0d 20 | 20 20 20 7d 20 6e 5f 69 |xvect;. | } n_i|
|00001b20| 6e 66 6f 3b 0d 7d 20 4e | 4f 44 45 3b 0d 0d 2f 2a |nfo;.} N|ODE;../*|
|00001b30| 20 65 78 65 63 75 74 69 | 6f 6e 20 63 6f 6e 74 65 | executi|on conte|
|00001b40| 78 74 20 66 6c 61 67 73 | 20 2a 2f 0d 23 64 65 66 |xt flags| */.#def|
|00001b50| 69 6e 65 20 43 46 5f 47 | 4f 09 09 31 0d 23 64 65 |ine CF_G|O..1.#de|
|00001b60| 66 69 6e 65 20 43 46 5f | 52 45 54 55 52 4e 09 32 |fine CF_|RETURN.2|
|00001b70| 0d 23 64 65 66 69 6e 65 | 20 43 46 5f 54 48 52 4f |.#define| CF_THRO|
|00001b80| 57 09 34 0d 23 64 65 66 | 69 6e 65 20 43 46 5f 45 |W.4.#def|ine CF_E|
|00001b90| 52 52 4f 52 09 38 0d 23 | 64 65 66 69 6e 65 20 43 |RROR.8.#|define C|
|00001ba0| 46 5f 43 4c 45 41 4e 55 | 50 09 31 36 0d 23 64 65 |F_CLEANU|P.16.#de|
|00001bb0| 66 69 6e 65 20 43 46 5f | 43 4f 4e 54 49 4e 55 45 |fine CF_|CONTINUE|
|00001bc0| 09 33 32 0d 23 64 65 66 | 69 6e 65 20 43 46 5f 54 |.32.#def|ine CF_T|
|00001bd0| 4f 50 4c 45 56 45 4c 09 | 36 34 0d 0d 2f 2a 20 65 |OPLEVEL.|64../* e|
|00001be0| 78 65 63 75 74 69 6f 6e | 20 63 6f 6e 74 65 78 74 |xecution| context|
|00001bf0| 20 2a 2f 0d 74 79 70 65 | 64 65 66 20 73 74 72 75 | */.type|def stru|
|00001c00| 63 74 20 63 6f 6e 74 65 | 78 74 20 7b 0d 20 20 20 |ct conte|xt {. |
|00001c10| 20 69 6e 74 20 63 5f 66 | 6c 61 67 73 3b 09 09 09 | int c_f|lags;...|
|00001c20| 2f 2a 20 63 6f 6e 74 65 | 78 74 20 74 79 70 65 20 |/* conte|xt type |
|00001c30| 66 6c 61 67 73 20 2a 2f | 0d 20 20 20 20 73 74 72 |flags */|. str|
|00001c40| 75 63 74 20 6e 6f 64 65 | 20 2a 63 5f 65 78 70 72 |uct node| *c_expr|
|00001c50| 3b 09 09 2f 2a 20 65 78 | 70 72 65 73 73 69 6f 6e |;../* ex|pression|
|00001c60| 20 28 74 79 70 65 20 64 | 65 70 65 6e 64 61 6e 74 | (type d|ependant|
|00001c70| 29 20 2a 2f 0d 20 20 20 | 20 6a 6d 70 5f 62 75 66 |) */. | jmp_buf|
|00001c80| 20 63 5f 6a 6d 70 62 75 | 66 3b 09 09 09 2f 2a 20 | c_jmpbu|f;.../* |
|00001c90| 6c 6f 6e 67 6a 6d 70 20 | 63 6f 6e 74 65 78 74 20 |longjmp |context |
|00001ca0| 2a 2f 0d 20 20 20 20 73 | 74 72 75 63 74 20 63 6f |*/. s|truct co|
|00001cb0| 6e 74 65 78 74 20 2a 63 | 5f 78 6c 63 6f 6e 74 65 |ntext *c|_xlconte|
|00001cc0| 78 74 3b 09 2f 2a 20 6f | 6c 64 20 76 61 6c 75 65 |xt;./* o|ld value|
|00001cd0| 20 6f 66 20 78 6c 63 6f | 6e 74 65 78 74 20 2a 2f | of xlco|ntext */|
|00001ce0| 0d 20 20 20 20 73 74 72 | 75 63 74 20 6e 6f 64 65 |. str|uct node|
|00001cf0| 20 2a 2a 2a 63 5f 78 6c | 73 74 61 63 6b 3b 09 09 | ***c_xl|stack;..|
|00001d00| 2f 2a 20 6f 6c 64 20 76 | 61 6c 75 65 20 6f 66 20 |/* old v|alue of |
|00001d10| 78 6c 73 74 61 63 6b 20 | 2a 2f 0d 20 20 20 20 73 |xlstack |*/. s|
|00001d20| 74 72 75 63 74 20 6e 6f | 64 65 20 2a 63 5f 78 6c |truct no|de *c_xl|
|00001d30| 65 6e 76 3b 09 09 2f 2a | 20 6f 6c 64 20 76 61 6c |env;../*| old val|
|00001d40| 75 65 20 6f 66 20 78 6c | 65 6e 76 20 2a 2f 0d 20 |ue of xl|env */. |
|00001d50| 20 20 20 69 6e 74 20 63 | 5f 78 6c 74 72 61 63 65 | int c|_xltrace|
|00001d60| 3b 09 09 09 2f 2a 20 6f | 6c 64 20 76 61 6c 75 65 |;.../* o|ld value|
|00001d70| 20 6f 66 20 78 6c 74 72 | 61 63 65 20 2a 2f 0d 7d | of xltr|ace */.}|
|00001d80| 20 43 4f 4e 54 45 58 54 | 3b 0d 0d 2f 2a 20 66 75 | CONTEXT|;../* fu|
|00001d90| 6e 63 74 69 6f 6e 20 74 | 61 62 6c 65 20 65 6e 74 |nction t|able ent|
|00001da0| 72 79 20 73 74 72 75 63 | 74 75 72 65 20 2a 2f 0d |ry struc|ture */.|
|00001db0| 73 74 72 75 63 74 20 66 | 64 65 66 20 7b 0d 20 20 |struct f|def {. |
|00001dc0| 20 20 63 68 61 72 20 2a | 66 5f 6e 61 6d 65 3b 09 | char *|f_name;.|
|00001dd0| 09 09 2f 2a 20 66 75 6e | 63 74 69 6f 6e 20 6e 61 |../* fun|ction na|
|00001de0| 6d 65 20 2a 2f 0d 20 20 | 20 20 69 6e 74 20 66 5f |me */. | int f_|
|00001df0| 74 79 70 65 3b 09 09 09 | 09 2f 2a 20 66 75 6e 63 |type;...|./* func|
|00001e00| 74 69 6f 6e 20 74 79 70 | 65 20 53 55 42 52 2f 46 |tion typ|e SUBR/F|
|00001e10| 53 55 42 52 20 2a 2f 0d | 20 20 20 20 73 74 72 75 |SUBR */.| stru|
|00001e20| 63 74 20 6e 6f 64 65 20 | 2a 28 2a 66 5f 66 63 6e |ct node |*(*f_fcn|
|00001e30| 29 28 29 3b 09 09 2f 2a | 20 66 75 6e 63 74 69 6f |)();../*| functio|
|00001e40| 6e 20 63 6f 64 65 20 2a | 2f 0d 7d 3b 0d 0d 2f 2a |n code *|/.};../*|
|00001e50| 20 6d 65 6d 6f 72 79 20 | 73 65 67 6d 65 6e 74 20 | memory |segment |
|00001e60| 73 74 72 75 63 74 75 72 | 65 20 64 65 66 69 6e 69 |structur|e defini|
|00001e70| 74 69 6f 6e 20 2a 2f 0d | 73 74 72 75 63 74 20 73 |tion */.|struct s|
|00001e80| 65 67 6d 65 6e 74 20 7b | 0d 20 20 20 20 69 6e 74 |egment {|. int|
|00001e90| 20 73 67 5f 73 69 7a 65 | 3b 0d 20 20 20 20 73 74 | sg_size|;. st|
|00001ea0| 72 75 63 74 20 73 65 67 | 6d 65 6e 74 20 2a 73 67 |ruct seg|ment *sg|
|00001eb0| 5f 6e 65 78 74 3b 0d 20 | 20 20 20 73 74 72 75 63 |_next;. | struc|
|00001ec0| 74 20 6e 6f 64 65 20 73 | 67 5f 6e 6f 64 65 73 5b |t node s|g_nodes[|
|00001ed0| 31 5d 3b 0d 7d 3b 0d 0d | 2f 2a 20 65 78 74 65 72 |1];.};..|/* exter|
|00001ee0| 6e 61 6c 20 76 61 72 69 | 61 62 6c 65 73 20 2a 2f |nal vari|ables */|
|00001ef0| 0d 65 78 74 65 72 6e 20 | 73 74 72 75 63 74 20 6e |.extern |struct n|
|00001f00| 6f 64 65 20 2a 2a 2a 78 | 6c 73 74 6b 74 6f 70 3b |ode ***x|lstktop;|
|00001f10| 09 09 2f 2a 20 74 6f 70 | 20 6f 66 20 74 68 65 20 |../* top| of the |
|00001f20| 65 76 61 6c 75 61 74 69 | 6f 6e 20 73 74 61 63 6b |evaluati|on stack|
|00001f30| 20 2a 2f 0d 65 78 74 65 | 72 6e 20 73 74 72 75 63 | */.exte|rn struc|
|00001f40| 74 20 6e 6f 64 65 20 2a | 2a 2a 78 6c 73 74 6b 62 |t node *|**xlstkb|
|00001f50| 61 73 65 3b 09 2f 2a 20 | 62 61 73 65 20 6f 66 20 |ase;./* |base of |
|00001f60| 74 68 65 20 65 76 61 6c | 75 61 74 69 6f 6e 20 73 |the eval|uation s|
|00001f70| 74 61 63 6b 20 2a 2f 0d | 65 78 74 65 72 6e 20 73 |tack */.|extern s|
|00001f80| 74 72 75 63 74 20 6e 6f | 64 65 20 2a 2a 2a 78 6c |truct no|de ***xl|
|00001f90| 73 74 61 63 6b 3b 09 09 | 2f 2a 20 65 76 61 6c 75 |stack;..|/* evalu|
|00001fa0| 61 74 69 6f 6e 20 73 74 | 61 63 6b 20 70 6f 69 6e |ation st|ack poin|
|00001fb0| 74 65 72 20 2a 2f 0d 0d | 2f 2a 20 65 78 74 65 72 |ter */..|/* exter|
|00001fc0| 6e 61 6c 20 70 72 6f 63 | 65 64 75 72 65 20 64 65 |nal proc|edure de|
|00001fd0| 63 6c 61 72 61 74 69 6f | 6e 73 20 2a 2f 0d 65 78 |claratio|ns */.ex|
|00001fe0| 74 65 72 6e 20 73 74 72 | 75 63 74 20 6e 6f 64 65 |tern str|uct node|
|00001ff0| 20 2a 78 6c 65 76 61 6c | 28 29 3b 09 09 2f 2a 20 | *xleval|();../* |
|00002000| 65 76 61 6c 75 61 74 65 | 20 61 6e 20 65 78 70 72 |evaluate| an expr|
|00002010| 65 73 73 69 6f 6e 20 2a | 2f 0d 65 78 74 65 72 6e |ession *|/.extern|
|00002020| 20 73 74 72 75 63 74 20 | 6e 6f 64 65 20 2a 78 6c | struct |node *xl|
|00002030| 61 70 70 6c 79 28 29 3b | 09 09 2f 2a 20 61 70 70 |apply();|../* app|
|00002040| 6c 79 20 61 20 66 75 6e | 63 74 69 6f 6e 20 74 6f |ly a fun|ction to|
|00002050| 20 61 72 67 75 6d 65 6e | 74 73 20 2a 2f 0d 65 78 | argumen|ts */.ex|
|00002060| 74 65 72 6e 20 73 74 72 | 75 63 74 20 6e 6f 64 65 |tern str|uct node|
|00002070| 20 2a 78 6c 65 76 6c 69 | 73 74 28 29 3b 09 09 2f | *xlevli|st();../|
|00002080| 2a 20 65 76 61 6c 75 61 | 74 65 20 61 20 6c 69 73 |* evalua|te a lis|
|00002090| 74 20 6f 66 20 61 72 67 | 75 6d 65 6e 74 73 20 2a |t of arg|uments *|
|000020a0| 2f 0d 65 78 74 65 72 6e | 20 73 74 72 75 63 74 20 |/.extern| struct |
|000020b0| 6e 6f 64 65 20 2a 78 6c | 61 72 67 28 29 3b 09 09 |node *xl|arg();..|
|000020c0| 2f 2a 20 66 65 74 63 68 | 20 61 6e 20 61 72 67 75 |/* fetch| an argu|
|000020d0| 6d 65 6e 74 20 2a 2f 0d | 65 78 74 65 72 6e 20 73 |ment */.|extern s|
|000020e0| 74 72 75 63 74 20 6e 6f | 64 65 20 2a 78 6c 65 76 |truct no|de *xlev|
|000020f0| 61 72 67 28 29 3b 09 09 | 2f 2a 20 66 65 74 63 68 |arg();..|/* fetch|
|00002100| 20 61 6e 64 20 65 76 61 | 6c 75 61 74 65 20 61 6e | and eva|luate an|
|00002110| 20 61 72 67 75 6d 65 6e | 74 20 2a 2f 0d 65 78 74 | argumen|t */.ext|
|00002120| 65 72 6e 20 73 74 72 75 | 63 74 20 6e 6f 64 65 20 |ern stru|ct node |
|00002130| 2a 78 6c 6d 61 74 63 68 | 28 29 3b 09 09 2f 2a 20 |*xlmatch|();../* |
|00002140| 66 65 74 63 68 20 61 6e | 20 74 79 70 65 64 20 61 |fetch an| typed a|
|00002150| 72 67 75 6d 65 6e 74 20 | 2a 2f 0d 65 78 74 65 72 |rgument |*/.exter|
|00002160| 6e 20 73 74 72 75 63 74 | 20 6e 6f 64 65 20 2a 78 |n struct| node *x|
|00002170| 6c 65 76 6d 61 74 63 68 | 28 29 3b 09 2f 2a 20 66 |levmatch|();./* f|
|00002180| 65 74 63 68 20 61 6e 64 | 20 65 76 61 6c 75 61 74 |etch and| evaluat|
|00002190| 65 20 61 20 74 79 70 65 | 64 20 61 72 67 20 2a 2f |e a type|d arg */|
|000021a0| 0d 65 78 74 65 72 6e 20 | 73 74 72 75 63 74 20 6e |.extern |struct n|
|000021b0| 6f 64 65 20 2a 78 6c 67 | 65 74 66 69 6c 65 28 29 |ode *xlg|etfile()|
|000021c0| 3b 09 2f 2a 20 66 65 74 | 63 68 20 61 20 66 69 6c |;./* fet|ch a fil|
|000021d0| 65 2f 73 74 72 65 61 6d | 20 61 72 67 75 6d 65 6e |e/stream| argumen|
|000021e0| 74 20 2a 2f 0d 65 78 74 | 65 72 6e 20 73 74 72 75 |t */.ext|ern stru|
|000021f0| 63 74 20 6e 6f 64 65 20 | 2a 78 6c 73 65 6e 64 28 |ct node |*xlsend(|
|00002200| 29 3b 09 09 2f 2a 20 73 | 65 6e 64 20 61 20 6d 65 |);../* s|end a me|
|00002210| 73 73 61 67 65 20 74 6f | 20 61 6e 20 6f 62 6a 65 |ssage to| an obje|
|00002220| 63 74 20 2a 2f 0d 65 78 | 74 65 72 6e 20 73 74 72 |ct */.ex|tern str|
|00002230| 75 63 74 20 6e 6f 64 65 | 20 2a 78 6c 65 6e 74 65 |uct node| *xlente|
|00002240| 72 28 29 3b 09 09 2f 2a | 20 65 6e 74 65 72 20 61 |r();../*| enter a|
|00002250| 20 73 79 6d 62 6f 6c 20 | 2a 2f 0d 65 78 74 65 72 | symbol |*/.exter|
|00002260| 6e 20 73 74 72 75 63 74 | 20 6e 6f 64 65 20 2a 78 |n struct| node *x|
|00002270| 6c 73 65 6e 74 65 72 28 | 29 3b 09 09 2f 2a 20 65 |lsenter(|);../* e|
|00002280| 6e 74 65 72 20 61 20 73 | 79 6d 62 6f 6c 20 77 69 |nter a s|ymbol wi|
|00002290| 74 68 20 61 20 73 74 61 | 74 69 63 20 70 6e 61 6d |th a sta|tic pnam|
|000022a0| 65 20 2a 2f 0d 65 78 74 | 65 72 6e 20 73 74 72 75 |e */.ext|ern stru|
|000022b0| 63 74 20 6e 6f 64 65 20 | 2a 78 6c 6d 61 6b 65 73 |ct node |*xlmakes|
|000022c0| 79 6d 28 29 3b 09 2f 2a | 20 6d 61 6b 65 20 61 6e |ym();./*| make an|
|000022d0| 20 75 6e 69 6e 74 65 72 | 6e 65 64 20 73 79 6d 62 | uninter|ned symb|
|000022e0| 6f 6c 20 2a 2f 0d 65 78 | 74 65 72 6e 20 73 74 72 |ol */.ex|tern str|
|000022f0| 75 63 74 20 6e 6f 64 65 | 20 2a 78 6c 66 72 61 6d |uct node| *xlfram|
|00002300| 65 28 29 3b 09 09 2f 2a | 20 65 73 74 61 62 6c 69 |e();../*| establi|
|00002310| 73 68 20 61 20 6e 65 77 | 20 65 6e 76 69 72 6f 6e |sh a new| environ|
|00002320| 6d 65 6e 74 20 66 72 61 | 6d 65 20 2a 2f 0d 65 78 |ment fra|me */.ex|
|00002330| 74 65 72 6e 20 73 74 72 | 75 63 74 20 6e 6f 64 65 |tern str|uct node|
|00002340| 20 2a 78 6c 67 65 74 76 | 61 6c 75 65 28 29 3b 09 | *xlgetv|alue();.|
|00002350| 2f 2a 20 67 65 74 20 76 | 61 6c 75 65 20 6f 66 20 |/* get v|alue of |
|00002360| 61 20 73 79 6d 62 6f 6c | 20 2a 2f 0d 0d 65 78 74 |a symbol| */..ext|
|00002370| 65 72 6e 20 73 74 72 75 | 63 74 20 6e 6f 64 65 20 |ern stru|ct node |
|00002380| 2a 63 6f 6e 73 28 29 3b | 09 09 2f 2a 20 28 63 6f |*cons();|../* (co|
|00002390| 6e 73 20 78 20 79 29 20 | 2a 2f 0d 0d 65 78 74 65 |ns x y) |*/..exte|
|000023a0| 72 6e 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a |rn struc|t node *|
|000023b0| 63 76 73 79 6d 62 6f 6c | 28 29 3b 09 09 2f 2a 20 |cvsymbol|();../* |
|000023c0| 63 6f 6e 76 65 72 74 20 | 61 20 73 74 72 69 6e 67 |convert |a string|
|000023d0| 20 74 6f 20 61 20 73 79 | 6d 62 6f 6c 20 2a 2f 0d | to a sy|mbol */.|
|000023e0| 65 78 74 65 72 6e 20 73 | 74 72 75 63 74 20 6e 6f |extern s|truct no|
|000023f0| 64 65 20 2a 63 76 63 73 | 79 6d 62 6f 6c 28 29 3b |de *cvcs|ymbol();|
|00002400| 09 2f 2a 20 28 73 61 6d | 65 20 62 75 74 20 63 6f |./* (sam|e but co|
|00002410| 6e 73 74 61 6e 74 20 73 | 74 72 69 6e 67 29 20 2a |nstant s|tring) *|
|00002420| 2f 0d 65 78 74 65 72 6e | 20 73 74 72 75 63 74 20 |/.extern| struct |
|00002430| 6e 6f 64 65 20 2a 63 76 | 73 74 72 69 6e 67 28 29 |node *cv|string()|
|00002440| 3b 09 09 2f 2a 20 63 6f | 6e 76 65 72 74 20 61 20 |;../* co|nvert a |
|00002450| 73 74 72 69 6e 67 20 2a | 2f 0d 65 78 74 65 72 6e |string *|/.extern|
|00002460| 20 73 74 72 75 63 74 20 | 6e 6f 64 65 20 2a 63 76 | struct |node *cv|
|00002470| 63 73 74 72 69 6e 67 28 | 29 3b 09 2f 2a 20 28 73 |cstring(|);./* (s|
|00002480| 61 6d 65 20 62 75 74 20 | 63 6f 6e 73 74 61 6e 74 |ame but |constant|
|00002490| 20 73 74 72 69 6e 67 29 | 20 2a 2f 0d 65 78 74 65 | string)| */.exte|
|000024a0| 72 6e 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a |rn struc|t node *|
|000024b0| 63 76 66 69 6c 65 28 29 | 3b 09 09 2f 2a 20 63 6f |cvfile()|;../* co|
|000024c0| 6e 76 65 72 74 20 61 20 | 46 49 4c 45 20 2a 20 74 |nvert a |FILE * t|
|000024d0| 6f 20 61 20 66 69 6c 65 | 20 2a 2f 0d 65 78 74 65 |o a file| */.exte|
|000024e0| 72 6e 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a |rn struc|t node *|
|000024f0| 63 76 73 75 62 72 28 29 | 3b 09 09 2f 2a 20 63 6f |cvsubr()|;../* co|
|00002500| 6e 76 65 72 74 20 61 20 | 66 75 6e 63 74 69 6f 6e |nvert a |function|
|00002510| 20 74 6f 20 61 20 73 75 | 62 72 2f 66 73 75 62 72 | to a su|br/fsubr|
|00002520| 20 2a 2f 0d 65 78 74 65 | 72 6e 20 73 74 72 75 63 | */.exte|rn struc|
|00002530| 74 20 6e 6f 64 65 20 2a | 63 76 66 69 78 6e 75 6d |t node *|cvfixnum|
|00002540| 28 29 3b 09 09 2f 2a 20 | 63 6f 6e 76 65 72 74 20 |();../* |convert |
|00002550| 61 20 66 69 78 6e 75 6d | 20 2a 2f 0d 65 78 74 65 |a fixnum| */.exte|
|00002560| 72 6e 20 73 74 72 75 63 | 74 20 6e 6f 64 65 20 2a |rn struc|t node *|
|00002570| 63 76 66 6c 6f 6e 75 6d | 28 29 3b 09 09 2f 2a 20 |cvflonum|();../* |
|00002580| 63 6f 6e 76 65 72 74 20 | 61 20 66 6c 6f 6e 75 6d |convert |a flonum|
|00002590| 20 2a 2f 0d 0d 65 78 74 | 65 72 6e 20 73 74 72 75 | */..ext|ern stru|
|000025a0| 63 74 20 6e 6f 64 65 20 | 2a 6e 65 77 73 74 72 69 |ct node |*newstri|
|000025b0| 6e 67 28 29 3b 09 2f 2a | 20 63 72 65 61 74 65 20 |ng();./*| create |
|000025c0| 61 20 6e 65 77 20 73 74 | 72 69 6e 67 20 2a 2f 0d |a new st|ring */.|
|000025d0| 65 78 74 65 72 6e 20 73 | 74 72 75 63 74 20 6e 6f |extern s|truct no|
|000025e0| 64 65 20 2a 6e 65 77 76 | 65 63 74 6f 72 28 29 3b |de *newv|ector();|
|000025f0| 09 2f 2a 20 63 72 65 61 | 74 65 20 61 20 6e 65 77 |./* crea|te a new|
|00002600| 20 76 65 63 74 6f 72 20 | 2a 2f 0d 65 78 74 65 72 | vector |*/.exter|
|00002610| 6e 20 73 74 72 75 63 74 | 20 6e 6f 64 65 20 2a 6e |n struct| node *n|
|00002620| 65 77 6f 62 6a 65 63 74 | 28 29 3b 09 2f 2a 20 63 |ewobject|();./* c|
|00002630| 72 65 61 74 65 20 61 20 | 6e 65 77 20 6f 62 6a 65 |reate a |new obje|
|00002640| 63 74 20 2a 2f 0d 0d 65 | 78 74 65 72 6e 20 73 74 |ct */..e|xtern st|
|00002650| 72 75 63 74 20 6e 6f 64 | 65 20 2a 78 6c 67 65 74 |ruct nod|e *xlget|
|00002660| 70 72 6f 70 28 29 3b 09 | 2f 2a 20 67 65 74 20 74 |prop();.|/* get t|
|00002670| 68 65 20 76 61 6c 75 65 | 20 6f 66 20 61 20 70 72 |he value| of a pr|
|00002680| 6f 70 65 72 74 79 20 2a | 2f 0d 0d 00 00 00 00 00 |operty *|/.......|
|00002690| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002700| 00 00 01 00 00 00 01 62 | 00 00 00 62 00 00 00 5a |.......b|...b...Z|
|00002710| 20 63 6f 6e 76 65 72 74 | 20 61 20 46 49 4c 45 20 | convert| a FILE |
|00002720| 2a 20 74 6f 20 61 20 66 | 69 6c 65 20 2a 2f 0d 65 |* to a f|ile */.e|
|00002730| 07 78 6c 69 73 70 2e 68 | 02 00 00 00 54 45 58 54 |.xlisp.h|....TEXT|
|00002740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 31 9e |........|......1.|
|00002750| 00 00 54 45 58 54 00 00 | 00 00 00 00 00 00 00 00 |..TEXT..|........|
|00002760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002770| 00 00 9b 2f 58 eb 00 00 | 26 0b 00 00 01 bc 73 74 |.../X...|&.....st|
|00002780| 72 75 63 74 20 6e 6f 64 | 65 20 2a 63 76 66 69 78 |ruct nod|e *cvfix|
|00002790| 6e 75 6d 28 29 3b 09 09 | 2f 2a 20 63 6f 6e 76 65 |num();..|/* conve|
|000027a0| 72 74 20 61 20 66 69 78 | 6e 75 6d 20 2a 2f 0d 65 |rt a fix|num */.e|
|000027b0| 78 74 65 72 6e 20 73 74 | 72 75 63 74 20 6e 6f 64 |xtern st|ruct nod|
|000027c0| 65 20 2a 63 76 66 6c 6f | 6e 75 6d 28 29 3b 09 09 |e *cvflo|num();..|
|000027d0| 2f 2a 20 63 6f 6e 76 65 | 72 74 20 61 20 66 6c 6f |/* conve|rt a flo|
|000027e0| 6e 75 6d 20 2a 2f 0d 0d | 65 78 74 65 72 6e 20 73 |num */..|extern s|
|000027f0| 74 72 75 63 74 20 6e 6f | 64 65 20 2a 6e 65 77 73 |truct no|de *news|
|00002800| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 80 1c 89 |...H..Mo|naco....|
|00002810| cf be 88 00 00 00 00 20 | 20 00 08 80 00 00 54 00 |....... | .....T.|
|00002820| 0a a0 22 8a 22 20 00 06 | 00 04 00 3c 00 24 01 53 |.."." ..|...<.$.S|
|00002830| 01 fd 00 3c 00 24 01 53 | 01 fd 9b 2f 60 2e 00 00 |...<.$.S|.../`...|
|00002840| 00 d3 00 00 00 d3 00 00 | 00 00 01 00 00 00 00 0a |........|........|
|00002850| 00 09 06 4d 6f 6e 61 63 | 6f 00 00 00 00 04 00 06 |...Monac|o.......|
|00002860| 00 08 00 00 01 00 00 00 | 01 62 00 00 00 62 00 00 |........|.b...b..|
|00002870| 00 5a 00 00 cc 24 02 36 | 00 00 00 1c 00 5a 00 02 |.Z...$.6|.....Z..|
|00002880| 4d 50 53 52 00 00 00 1a | 45 46 4e 54 00 00 00 26 |MPSR....|EFNT...&|
|00002890| 45 54 41 42 00 00 00 32 | 03 ed ff ff 00 00 00 00 |ETAB...2|........|
|000028a0| 00 00 00 00 03 eb ff ff | 00 00 00 4c 00 01 86 60 |........|...L...`|
|000028b0| 03 ec ff ff 00 00 00 5a | 00 01 86 4c 00 00 00 00 |.......Z|...L....|
|000028c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+